package midas

//米大师获取用户的游戏币余额请求参数
type GetBalanceReq struct {
	OpenId     	  string 	`json:"openid"` 		//用户唯一标识符
	AppId    	  string    `json:"appid"`			//小程序 appId
	OfferId   	  string 	`json:"offer_id"`		//米大师分配的offer_id
	TS            int64 	`json:"ts"` 			//UNIX 时间戳，单位是秒=
	ZoneId        string 	`json:"zone_id"`		//游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色，则角色ID接在分区ID号后用"_"连接。
	PF            string 	`json:"pf"`				//平台 安卓：android
	Sig           string 	`json:"sig"`			//米大师签名
	AccessToken   string 	`json:"access_token"`	//接口调用凭证
	MpSig 		  string 	`json:"mp_sig"`			//米大师另一个签名
}

//米大师获取用户的游戏币余额返回值
type GetBalanceRes struct {
	Errcode     int       `json:"errcode"`			//错误码
	Errmsg     	string    `json:"errmsg"`			//错误信
	Balance    	int64     `json:"balance"`			//游戏币个数
	GenBalance	int64     `json:"gen_balance"`		//赠送游戏币数量
	FirstSave 	int64     `json:"first_save"`		//是否满足首充
	SaveAmt     int64     `json:"save_amt"`			//累计充值金额游戏币数量
	SaveSum     int64     `json:"save_sum"`			//历史总金币金额
	CostSum     int64     `json:"cost_sum"`			//历史消费游戏币金额
	PresentSum  int64     `json:"present_sum"`		//历史累计收到怎送金币
}

func (req GetBalanceReq) Path() string {
	return "/cgi-bin/midas/getbalance"
}

//米大师获取用户游戏币余额URI
func (req GetBalanceReq) URI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/getbalance?access_token=" + accessToken
}
func (req GetBalanceReq) SandBoxURI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/sandbox/getbalance?access_token=" + accessToken
}


//米大师支付请求参数结构
type MidasPayReq struct {
	GetBalanceReq									//继承获取余额请求结构
	Amt 		int64     `json:"amt"`				//amount 扣除游戏币数量，不能为 0
	BillNo 		string 	  `json:"bill_no"` 			//订单号，业务需要保证全局唯一；相同的订单号不会重复扣款。长度不超过63，只能是数字、大小写字母_-
	PayItem 	string    `json:"pay_item"` 		//道具名称
	AppRemark 	string    `json:"app_remark"` 		//备注。会写到账户流水
}

//米大师支付返回值结构参数
type MidasPayRes struct {
	Errcode 	int 	 `json:"errcode"`		 	//错误码
	Errmsg 		string 	 `json:"errmsg"` 			//错误信息
	Balance 	int64    `json:"balance"` 			//预扣后的余额
	BillNo 		string   `json:"bill_no"`			//订单号，有效期是 48 小时
	UsedGenAmt 	int64    `json:"used_gen_amt"`		//本次扣的赠送币的余额
}

//米大师支付URI
func (req MidasPayReq) URI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/pay?access_token=" + accessToken
}
func (req MidasPayReq) SandBoxURI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/sandbox/pay?access_token=" + accessToken
}
func (req MidasPayReq) Path() string {
	return "/cgi-bin/midas/pay"
}



//米大师赠送游戏币请求结构参数
type MidasPresentReq struct {
	GetBalanceReq									//继承米大师获取余额参数结构
	BillNo 		  string 	`json:"bill_no"`		//订单号，业务需要保证全局唯一；相同的订单号不会重复扣款。长度不超过63，只能是数字、大小写字母_-
	PresentCounts int64 	`json:"present_counts"` //赠送游戏币的个数，不能为0
}

//米大师赠送游戏币返回值参数结构
type MidasPresentRes struct {
	Errcode 	int    		`json:"errcode"` 		//错误码
	Errmsg  	string 		`json:"errmsg"` 		//错误信息
	Balance 	int64  		`json:"balance"`		//赠送后的余额
	BillNo 		string 		`json:"bill_no"`  		///赠送游戏币的订单号，有效期是 48 小时
}

//米大师赠送游戏币URI
func (req MidasPresentReq) URI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/present?access_token=" + accessToken
}
func (req MidasPresentReq) SandBoxURI(accessToken string) string {
	return "https://api.weixin.qq.com/cgi-bin/midas/sandbox/present?access_token=" + accessToken
}

func (req MidasPresentReq) Path() string {
	return "/cgi-bin/midas/present"
}



//购买的何种道具，需要
type BuyItem struct {
	Amt		   int64 	`json:"amt"`			 //amount 扣除游戏币数量，不能为 0
	PayItem	   string	 `json:"pay_item"`		 //道具名称
	AppRemark  string 	`json:"app_remark"`		 //备注。会写到账户流水
}

